package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.pojo.UserLike;
import com.tanhua.dubbo.server.vo.PageInfo;

import java.util.List;

public interface UserLikeApi {

    /**
     * 喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean likeUser(Long userId,Long likeUserId);

    /**
     * 不喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean unLikeUser(Long userId,Long likeUserId);

    /**
     * 是否互相喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean bothLikeOther(Long userId,Long likeUserId);

    /**
     * 查询喜欢列表
     * @param userId
     * @return
     */
    List<Long> likeList(Long userId);

    /**
     * 查询不喜欢列表
     * @param userId
     * @return
     */
    List<Long> unLikeList(Long userId);

    /**
     * 我的粉丝数
     * @param userId
     * @return
     */
    Long likeMeCount(Long userId);

    /**
     * 我的喜欢数
     * @param userId
     * @return
     */
    Long myLoveCount(Long userId);

    /**
     * 互相喜欢数
     * @param userId
     * @return
     */
    Long loveEachOtherCount(Long userId);

    /**
     * 查找互相喜欢列表
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<UserLike> findLoveEachOtherList(Long userId,Integer page,Integer pageSize);

    /**
     * 查找我的喜欢列表
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<UserLike> findMyLikeList(Long userId,Integer page,Integer pageSize);

    /**
     * 查找我的粉丝列表
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<UserLike> findMyFansList(Long userId,Integer page,Integer pageSize);

    /**
     * 是否已经喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean isLike(Long userId, Long likeUserId);

    /**
     * 是否不喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean isUnLike(Long userId, Long likeUserId);
}
